/*
 *  Set.h
 *  T3nsors
 *
 *  Created by Michael Barriault on 10-09-29.
 *  Copyright 2010 MikBarr Studios. All rights reserved.
 *
 */

#pragma once

#include <T3nsors/Scalar.h>
#include <T3nsors/Vector.h>
#include <T3nsors/Matrix.h>
#include <vector>

namespace T3 {
	class Set {
	private:
		std::vector<T3::Scalar> aS;
		std::vector<T3::Vector> aV;
	public:
		Domain O;
		int s,v,N;
		Set();
		Set(int,int,int);
		Set(Domain,int,int,int);
		T3::Set& operator+=(T3::Set&);
		T3::Scalar& S(int);
		T3::Vector& V(int);
	};
}

T3::Set operator+(T3::Set, T3::Set);
T3::Set LinCom(double, T3::Set, double, T3::Set);
T3::Set LinCom(double, T3::Set, double, T3::Set, double, T3::Set);
T3::Set LinCom(double, T3::Set, double, T3::Set, double, T3::Set, double, T3::Set);
void CheckDims(T3::Set, T3::Set);
